package com.linxiao.hrcrm.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 客户信息对象 crm_customer
 *
 * @author zhoudong
 * @date 2024-01-03
 */
public class CrmCustomer extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /** 男 */
    public static final int GENDER_MAN = 0;
    /** 女 */
    public static final int GENDER_WOMAN = 1;
    /** 未知 */
    public static final int GENDER_OTHER = 2;

    /** 客户类型：个人 */
    public static final String CUSTOMER_TYPE_USER = "USER";
    /** 客户类型：公司 */
    public static final String CUSTOMER_TYPE_COM = "COM";
    /** 客户类型：机构 */
    public static final String CUSTOMER_TYPE_ORG = "ORG";
    /** 客户类型：工人 */
    public static final String CUSTOMER_TYPE_WORKER = "WORKER";

    /**
     * 客户ID
     */
    private Long id;

    /**
     * 商户ID
     */
    @Excel(name = "商户ID（必填）")
    private Long mchId;

    /**
     * 客户名称
     */
    @Excel(name = "客户名称（必填）")
    private String customerName;

    /**
     * 客户昵称
     */
    @Excel(name = "客户昵称")
    private String nickname;

    /**
     * 头像
     */
    @Excel(name = "头像")
    private String avatar;

    /**
     * 客户类型
     */
    @Excel(name = "客户类型（USER-个人，COM-公司，ORG-机构，WORKER-工人）（必填）")
    private String customerType;

    /**
     * 会员ID
     */
    @Excel(name = "会员ID")
    private String memberId;

    /**
     * 公司名称
     */
    @Excel(name = "公司名称")
    private String companyName;

    /**
     * 职位
     */
    @Excel(name = "职位")
    private String position;

    /**
     * 手机号
     */
    @Excel(name = "手机号（必填）")
    private String phoneNumber;

    /**
     * 手机号加密存储
     */
    @Excel(name = "手机号加密存储")
    private String encryptedPhoneNumber;

    /**
     * 客户等级
     */
    @Excel(name = "客户等级")
    private String customerLevel;

    /**
     * 性别
     */
    @Excel(name = "性别")
    private Integer gender;

    /**
     * 年龄
     */
    @Excel(name = "年龄")
    private Long age;

    /**
     * 所属省
     */
    @Excel(name = "所属省")
    private String province;

    /**
     * 所属市
     */
    @Excel(name = "所属市")
    private String city;

    /**
     * 所属地址
     */
    @Excel(name = "所属地址")
    private String address;

    /**
     * 生日
     */
    @Excel(name = "生日")
    private String birthday;

    /**
     * 习惯
     */
    @Excel(name = "习惯")
    private String habit;

    /**
     * 客户来源
     */
    @Excel(name = "客户来源")
    private String source;

    /**
     * 最后联系时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后联系时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastContactTime;

    /**
     * 是否收藏
     */
    @Excel(name = "是否收藏")
    private String isFavorite;

    /**
     * 电话号
     */
    @Excel(name = "电话号")
    private String telephone;

    /**
     * email
     */
    @Excel(name = "email")
    private String email;

    /**
     * qq
     */
    @Excel(name = "qq")
    private String qq;

    /**
     * wx
     */
    @Excel(name = "wx")
    private String wx;

    /**
     * 行业
     */
    @Excel(name = "行业")
    private String industry;

    /**
     * 公司规模
     */
    @Excel(name = "公司规模")
    private String staffSize;

    /**
     * 资金规模
     */
    @Excel(name = "资金规模")
    private String fundSize;

    /**
     * 客户备注
     */
    @Excel(name = "客户备注")
    private String customerNote;

    /**
     * 项目ID
     */
    private String projectId;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setMchId(Long mchId) {
        this.mchId = mchId;
    }

    public Long getMchId() {
        return mchId;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getNickname() {
        return nickname;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setCustomerType(String customerType) {
        this.customerType = customerType;
    }

    public String getCustomerType() {
        return customerType;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public String getPosition() {
        return position;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setEncryptedPhoneNumber(String encryptedPhoneNumber) {
        this.encryptedPhoneNumber = encryptedPhoneNumber;
    }

    public String getEncryptedPhoneNumber() {
        return encryptedPhoneNumber;
    }

    public void setCustomerLevel(String customerLevel) {
        this.customerLevel = customerLevel;
    }

    public String getCustomerLevel() {
        return customerLevel;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public Integer getGender() {
        return gender;
    }

    public void setAge(Long age) {
        this.age = age;
    }

    public Long getAge() {
        return age;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getProvince() {
        return province;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getCity() {
        return city;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setHabit(String habit) {
        this.habit = habit;
    }

    public String getHabit() {
        return habit;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getSource() {
        return source;
    }

    public void setLastContactTime(Date lastContactTime) {
        this.lastContactTime = lastContactTime;
    }

    public Date getLastContactTime() {
        return lastContactTime;
    }

    public void setIsFavorite(String isFavorite) {
        this.isFavorite = isFavorite;
    }

    public String getIsFavorite() {
        return isFavorite;
    }

    public void setCustomerNote(String customerNote) {
        this.customerNote = customerNote;
    }

    public String getCustomerNote() {
        return customerNote;
    }

    public String getMemberId() {
        return memberId;
    }

    public void setMemberId(String memberId) {
        this.memberId = memberId;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getQq() {
        return qq;
    }

    public void setQq(String qq) {
        this.qq = qq;
    }

    public String getWx() {
        return wx;
    }

    public void setWx(String wx) {
        this.wx = wx;
    }

    public String getIndustry() {
        return industry;
    }

    public void setIndustry(String industry) {
        this.industry = industry;
    }

    public String getStaffSize() {
        return staffSize;
    }

    public void setStaffSize(String staffSize) {
        this.staffSize = staffSize;
    }

    public String getFundSize() {
        return fundSize;
    }

    public void setFundSize(String fundSize) {
        this.fundSize = fundSize;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }


    public String getProjectId() {
        return projectId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    @Override
    public String toString() {
        return "CrmCustomer{" +
                "id=" + id +
                ", mchId=" + mchId +
                ", customerName='" + customerName + '\'' +
                ", nickname='" + nickname + '\'' +
                ", avatar='" + avatar + '\'' +
                ", customerType='" + customerType + '\'' +
                ", memberId='" + memberId + '\'' +
                ", position='" + position + '\'' +
                ", phoneNumber='" + phoneNumber + '\'' +
                ", encryptedPhoneNumber='" + encryptedPhoneNumber + '\'' +
                ", customerLevel='" + customerLevel + '\'' +
                ", gender=" + gender +
                ", age=" + age +
                ", province='" + province + '\'' +
                ", city='" + city + '\'' +
                ", address='" + address + '\'' +
                ", birthday='" + birthday + '\'' +
                ", habit='" + habit + '\'' +
                ", source='" + source + '\'' +
                ", lastContactTime=" + lastContactTime +
                ", isFavorite='" + isFavorite + '\'' +
                ", telephone='" + telephone + '\'' +
                ", email='" + email + '\'' +
                ", qq='" + qq + '\'' +
                ", wx='" + wx + '\'' +
                ", industry='" + industry + '\'' +
                ", staffSize='" + staffSize + '\'' +
                ", fundSize='" + fundSize + '\'' +
                ", customerNote='" + customerNote + '\'' +
                '}';
    }
}
